package org.summerframework.component.note.manager;

import org.springframework.transaction.annotation.Transactional;

import java.util.Map;

/**
 * @author 石超
 * @version v1.0.0
 */
public interface NoteManager {
    /**
     * 验证码发送
     *
     * @param account      手机号
     * @param templateCode 短信的code
     * @param ip           发送的ip
     * @return 发送的验证码
     */
    @Transactional(rollbackFor = Exception.class)
    String sendVerifyCode(String account, String templateCode, String ip);

    /**
     * 发送通知短信
     *
     * @param account      手机号
     * @param templateCode 短信code
     * @param ip           ip
     * @param map          通知短信map
     */
    @Transactional(rollbackFor = Exception.class)
    void sendNote(String account, String templateCode, String ip, Map<String, Object> map);

    /**
     * 验证验证码
     *
     * @param account      手机号
     * @param templateCode 短信code
     * @param code         验证码
     * @return 验证结果
     */
    @Transactional(rollbackFor = Exception.class)
    boolean verifyCode(String account, String templateCode, String code);
}
